/*
 * 
 * Libman
 * 
 * Daniel Kaufmann, Martin Lang, Simon Moosbrugger,
 * Stefan Mayer, Stephan Halbeisen
 * 
 */
package model;

import java.util.Date;
import java.util.Set;

/**
 * The Class Client.
 */
public class Client implements java.io.Serializable {

	/** The Constant serialVersionUID. */
	private static final long serialVersionUID = 1L;
	
	/** The id. */
	private Integer id;
	
	/** The group. */
	private Group group;
	
	/** The first name. */
	private String firstName;
	
	/** The last name. */
	private String lastName;
	
	/** The date of birth. */
	private Date dateOfBirth;
	
	/** The street. */
	private String street;
	
	/** The post code. */
	private String postCode;
	
	/** The city. */
	private String city;
	
	/** The phone number. */
	private String phoneNumber;
	
	/** The email. */
	private String email;
	
	/** The reservations. */
	private Set<Reservation> reservations;
	
	/** The loans. */
	private Set<Loan> loans;

	/**
	 * Instantiates a new client.
	 */
	public Client() {
	}

	/**
	 * Instantiates a new client.
	 * 
	 * @param id
	 *            the id
	 * @param group
	 *            the group
	 * @param firstName
	 *            the first name
	 * @param lastName
	 *            the last name
	 * @param dateOfBirth
	 *            the date of birth
	 * @param street
	 *            the street
	 * @param postCode
	 *            the post code
	 * @param city
	 *            the city
	 * @param phoneNumer
	 *            the phone numer
	 * @param email
	 *            the email
	 * @param reservations
	 *            the reservations
	 * @param loans
	 *            the loans
	 */
	public Client(int id, Group group, String firstName, String lastName,
			Date dateOfBirth, String street, String postCode, String city,
			String phoneNumer, String email, Set<Reservation> reservations,
			Set<Loan> loans) {
		this.id = id;
		this.group = group;
		this.firstName = firstName;
		this.lastName = lastName;
		this.dateOfBirth = dateOfBirth;
		this.street = street;
		this.postCode = postCode;
		this.city = city;
		this.phoneNumber = phoneNumer;
		this.email = email;
		this.reservations = reservations;
		this.loans = loans;
	}

	/**
	 * Gets the id.
	 * 
	 * @return the id
	 */
	public Integer getId() {
		return this.id;
	}

	/**
	 * Sets the id.
	 * 
	 * @param id
	 *            the new id
	 */
	public void setId(Integer id) {
		this.id = id;
	}

	/**
	 * Gets the group.
	 * 
	 * @return the group
	 */
	public Group getGroup() {
		return this.group;
	}

	/**
	 * Sets the group.
	 * 
	 * @param group
	 *            the new group
	 */
	public void setGroup(Group group) {
		this.group = group;
	}

	/**
	 * Gets the first name.
	 * 
	 * @return the first name
	 */
	public String getFirstName() {
		return this.firstName;
	}

	/**
	 * Sets the first name.
	 * 
	 * @param firstName
	 *            the new first name
	 */
	public void setFirstName(String firstName) {
		this.firstName = firstName;
	}

	/**
	 * Gets the last name.
	 * 
	 * @return the last name
	 */
	public String getLastName() {
		return this.lastName;
	}

	/**
	 * Sets the last name.
	 * 
	 * @param lastName
	 *            the new last name
	 */
	public void setLastName(String lastName) {
		this.lastName = lastName;
	}

	/**
	 * Gets the date of birth.
	 * 
	 * @return the date of birth
	 */
	public Date getDateOfBirth() {
		return this.dateOfBirth;
	}

	/**
	 * Sets the date of birth.
	 * 
	 * @param dateOfBirth
	 *            the new date of birth
	 */
	public void setDateOfBirth(Date dateOfBirth) {
		this.dateOfBirth = dateOfBirth;
	}

	/**
	 * Gets the street.
	 * 
	 * @return the street
	 */
	public String getStreet() {
		return this.street;
	}

	/**
	 * Sets the street.
	 * 
	 * @param street
	 *            the new street
	 */
	public void setStreet(String street) {
		this.street = street;
	}

	/**
	 * Gets the post code.
	 * 
	 * @return the post code
	 */
	public String getPostCode() {
		return this.postCode;
	}

	/**
	 * Sets the post code.
	 * 
	 * @param postCode
	 *            the new post code
	 */
	public void setPostCode(String postCode) {
		this.postCode = postCode;
	}

	/**
	 * Gets the city.
	 * 
	 * @return the city
	 */
	public String getCity() {
		return this.city;
	}

	/**
	 * Sets the city.
	 * 
	 * @param city
	 *            the new city
	 */
	public void setCity(String city) {
		this.city = city;
	}

	/**
	 * Gets the phone number.
	 * 
	 * @return the phone number
	 */
	public String getPhoneNumber() {
		return this.phoneNumber;
	}

	/**
	 * Sets the phone number.
	 * 
	 * @param phoneNumber
	 *            the new phone number
	 */
	public void setPhoneNumber(String phoneNumber) {
		this.phoneNumber = phoneNumber;
	}

	/**
	 * Gets the email.
	 * 
	 * @return the email
	 */
	public String getEmail() {
		return this.email;
	}

	/**
	 * Sets the email.
	 * 
	 * @param email
	 *            the new email
	 */
	public void setEmail(String email) {
		this.email = email;
	}

	/**
	 * Gets the reservations.
	 * 
	 * @return the reservations
	 */
	public Set<Reservation> getReservations() {
		return this.reservations;
	}

	/**
	 * Sets the reservations.
	 * 
	 * @param reservations
	 *            the new reservations
	 */
	public void setReservations(Set<Reservation> reservations) {
		this.reservations = reservations;
	}

	/**
	 * Sets the loans.
	 * 
	 * @param loans
	 *            the new loans
	 */
	public void setLoans(Set<Loan> loans) {
		this.loans = loans;
	}

	/**
	 * Gets the loans.
	 * 
	 * @return the loans
	 */
	public Set<Loan> getLoans() {
		return loans;
	}
}
